var protocolDom = document.querySelector('#protocol');
var protocolClose = protocolDom.querySelector('.close');
var protocolLink = document.querySelector('#protocol-jump');
var errorDom = document.querySelector('#loginError');
var companyNameInput = document.querySelector('#companyName');
var phoneNumberInput = document.querySelector('#phoneNumber');
var passwordInput = document.querySelector('#password');
var registerBtn = document.querySelector('#registerBtn');
var agreeProtocolCheckbox = document.querySelector('#agreeProtocol');
// 注册Focus事件
companyNameInput.addEventListener('focus', hideLoginError);
phoneNumberInput.addEventListener('focus', hideLoginError);
passwordInput.addEventListener('focus', hideLoginError);
// 修改错误信息提示
function showLoginError(text) {
  loginError.innerText = text;
  loginError.style.display = "block";
}
// 隐藏错误信息
function hideLoginError() {
  loginError.innerText = '';
  loginError.style.display = "none";
}
// 显示协议内容
function showProtocol() {
  protocolDom.style.display = 'block';
}
// 隐藏协议内容
function hideProtocol() {
  protocolDom.style.display = 'none';
  protocolClose.removeEventListener('click', hideProtocol);
}
// 检查接口返回的状态
function checkStatus(response) {
  if (response.status >= 200 && response.status < 300) {
    return response;
  } else {
    var error = new Error(response.statusText);
    error.response = response;
    throw error;
  }
}
// 转化JSON
function parseJson(response) {
  return response.json().then(function(res) {
    return res;
  });
}
// 处理接口请求后的数据
function dealData(resp) {
  if (resp && resp.data && resp.data.token) {
    // 跳转页面
    window.localStorage.setItem('companyName', resp.data.name);
    window.localStorage.setItem('companyId', resp.data.id);
    window.location.href = './guideFeature.html';
  } else if (resp && !resp.success) {
    showLoginError(resp.data);
  } else {
    // 提示登录不成功
    showLoginError('注册不成功!');
  }
}
// 请求接口
function fetchRegisterApi(url, param) {
  var myHeader = new Headers();
  myHeader.append("Content-Type", "application/x-www-form-urlencoded");
  fetch(
    url,
    {
      method: 'POST',
      headers: myHeader,
      mode: 'cors',
      cache: 'default',
      body: param
    }
  )
  .then(checkStatus)
  .then(parseJson)
  .then(dealData)
  .catch(function() {
    showLoginError('网络请求错误！');
  });
}
// 提交注册
function onRegister() {
  var phoneNumber = phoneNumberInput.value;
  var companyName = companyNameInput.value;
  var password = passwordInput.value;
  var protocolCheck = agreeProtocolCheckbox.checked;
  var phoneRegExp = /^1[3|4|5|6|7|8|9]\d{9}$/;
  if (!protocolCheck) return showLoginError('请勾选同意协议');
  if (companyName.trim() === '')  return showLoginError('请填写公司名称');
  if (!phoneRegExp.test(phoneNumber))  return showLoginError('手机号码格式不正确');
  if (password.trim() === '' || password.trim().length<8) return showLoginError('请输入不少于8位字符密码');
  var param = 'name='+ companyName + '&managerPhone=' + phoneNumber+ '&password='+ password;
  fetchRegisterApi('/api/wx/company/register',param);
}
// 添加写协议显示的事件
protocolLink.addEventListener('click', function(e) {
  e.preventDefault();
  e.stopPropagation();
  showProtocol();
  protocolClose.addEventListener('click', hideProtocol);
});
// 注册提交注册按钮事件
registerBtn.addEventListener('click', onRegister);